﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Tworzenie_Grafiku
{
    /// <summary>
    /// Interaction logic for TworzenieGrafiku.xaml
    /// </summary>
    public partial class TworzenieGrafiku : Window
    {
       
        
        List<String> Lista_lekarzy = new List<String>();
        private List<Lekarz> ListaL;
        Lekarz Wybrany_Lekarz;
        String id_uzytkownika, imie_uzytkownika, nazwisko_uzytkownika, stanowisko_uzytkownika;
        public TworzenieGrafiku(string id, string imie, string nazwisko, string stanowisko)
        {

            InitializeComponent();
            id_uzytkownika = id;
            konto.Text = imie + " " + nazwisko;
            imie_uzytkownika=imie;
            nazwisko_uzytkownika=nazwisko;
            stanowisko_uzytkownika = stanowisko;
            ListaLekarzy.SelectionChanged += new SelectionChangedEventHandler(Wybranie_lekarza);
            Data_od.SelectedDateChanged += new EventHandler<SelectionChangedEventArgs>(Data_od_SelectedDateChanged);
            Inicjalizacja_lekarzy();
            this.Show();
        }

        void Data_od_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            Data_do.IsEnabled = true;
            Data_do.Text = Data_od.Text;
   
        }



        void Inicjalizacja_lekarzy()
        {
            ListaLekarzy.IsEnabled = true;
            using (LINQtoDBDataContext db = new LINQtoDBDataContext())
            {
                var records = from record in db.Lekarzs
                              select record;
               ListaL= records.ToList();
            }
            if (ListaL.Count() > 0)
            {
                foreach (Lekarz wiersz in ListaL)
                {

                    Lista_lekarzy.Add("Dr. "+wiersz.Imie+" "+wiersz.Nazwisko+" - "+wiersz.Opis);
                }
            }
            ListaLekarzy.ItemsSource = Lista_lekarzy;
        }


        string idlekarza;

        void Wybranie_lekarza(object sender, SelectionChangedEventArgs args)
        {
            string word = Convert.ToString(ListaLekarzy.SelectedItem);
            string[] split = word.Split(new Char[] { ' '});
      
            using (LINQtoDBDataContext db = new LINQtoDBDataContext())
            {
                var records = from record in db.Lekarzs
                              where record.Imie==split[1] && record.Nazwisko==split[2]

                              select record;
             ListaL= records.ToList();
            }
            if (ListaL.Count() > 0)
            {
                foreach (Lekarz wiersz in ListaL)
                {

                    Wybrany_Lekarz = wiersz;
                   idlekarza= wiersz.Id_lekarza.ToString();
                }
            }
            pokaz.IsEnabled = true;

        }

        private void zmien_Click(object sender, RoutedEventArgs e)
        {
            pokaz.IsEnabled = true;
         
             dodaj.IsEnabled = false;
            usun.IsEnabled = false;
            odswiez.IsEnabled = false;
            Data_do.IsEnabled = true;
            Data_od.IsEnabled = true;
   
            ListaLekarzy.IsEnabled = true;
            zmien.IsEnabled = false;

            grafik.ItemsSource = null;
        }


        private void pokaz_Click(object sender, RoutedEventArgs e)
        {
            pokaz.IsEnabled = false;
    
            dodaj.IsEnabled = true;
            usun.IsEnabled = true;
            odswiez.IsEnabled = true;
            Data_do.IsEnabled = false;
            Data_od.IsEnabled = false;
           
            ListaLekarzy.IsEnabled = false;
            zmien.IsEnabled = true;

            using (LINQtoDBDataContext db = new LINQtoDBDataContext())
            {
                var records = from record in db.Grafiks
                              where record.Id_lekarza == Wybrany_Lekarz.Id_lekarza && Convert.ToDateTime(record.Data) >=Convert.ToDateTime( Data_od.Text) && Convert.ToDateTime(record.Data) <= Convert.ToDateTime( Data_do.Text)
                              select record;
                ListaG = records.ToList();
            }

           
            grafik.ItemsSource = ListaG;
           


        }



        public List<Grafik> ListaG { get; set; }

   

        private void dodaj_Click(object sender, RoutedEventArgs e)
        {
            new DodawanieGrafiku(Convert.ToString(ListaLekarzy.SelectedItem), id_uzytkownika, idlekarza);
       
          }


        private void odswiez_Click(object sender, RoutedEventArgs e)
        {
            using (LINQtoDBDataContext db = new LINQtoDBDataContext())
            {
                var records = from record in db.Grafiks
                              where record.Id_lekarza == Wybrany_Lekarz.Id_lekarza && Convert.ToDateTime(record.Data )>= Convert.ToDateTime(Data_od.Text) && Convert.ToDateTime(record.Data) <= Convert.ToDateTime(Data_do.Text)
                              select record;
                ListaG = records.ToList();
            }


            grafik.ItemsSource = ListaG;
        }

        private void usun_Click(object sender, RoutedEventArgs e)
        {
            grid1.Visibility = System.Windows.Visibility.Visible;
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            using (LINQtoDBDataContext db = new LINQtoDBDataContext())
            {
                var records = from record in db.Grafiks
                              where record.Id_grafiku==Convert.ToInt32(idwizyty.Text)            select record;

            db.Grafiks.DeleteOnSubmit(records.First());

            db.SubmitChanges();
        }
            grid1.Visibility = System.Windows.Visibility.Hidden;
        }

        private void button3_Click(object sender, RoutedEventArgs e)
        {
            grid1.Visibility = System.Windows.Visibility.Collapsed;
        }


        private void Powrot_bt_Click(object sender, RoutedEventArgs e)
        {
            new Menu(id_uzytkownika, imie_uzytkownika, nazwisko_uzytkownika, stanowisko_uzytkownika);
           this.Close();
        }


    }
}
